home *** CD-ROM | disk | FTP | other *** search
/ Champak 29 / Volume 29 - JOGO DISK .iso / Games / jungle_adventure.swf / scripts / __Packages / Vector.as < prev    next >
Text File  |  2006-11-29  |  3KB  |  132 lines

  1. class Vector
  2. {
  3.    static var ZERO = new Vector(0,0,0);
  4.    static var VECPX = new Vector(1,0,0);
  5.    static var VECNX = new Vector(-1,0,0);
  6.    static var VECPY = new Vector(0,1,0);
  7.    static var VECNY = new Vector(0,-1,0);
  8.    static var VECPZ = new Vector(0,0,1);
  9.    static var VECNZ = new Vector(0,0,-1);
  10.    var x = 0;
  11.    var y = 0;
  12.    var z = 0;
  13.    function Vector(x, y, z)
  14.    {
  15.       if(x || y || z)
  16.       {
  17.          this.x = !x ? 0 : x;
  18.          this.y = !y ? 0 : y;
  19.          this.z = !z ? 0 : z;
  20.       }
  21.    }
  22.    function loc(x, y, z)
  23.    {
  24.       this.x = x;
  25.       this.y = y;
  26.       this.z = z;
  27.    }
  28.    function copy()
  29.    {
  30.       return new Vector(this.x,this.y,this.z);
  31.    }
  32.    function copyTo(a)
  33.    {
  34.       a.x = this.x;
  35.       a.y = this.y;
  36.       a.z = this.z;
  37.    }
  38.    function copyFrom(a)
  39.    {
  40.       this.x = a.x;
  41.       this.y = a.y;
  42.       this.z = a.z;
  43.    }
  44.    function distanceToVector(a)
  45.    {
  46.       var _loc4_ = a.x - this.x;
  47.       var _loc3_ = a.y - this.y;
  48.       var _loc2_ = a.z - this.z;
  49.       return Math.sqrt(_loc4_ * _loc4_ + _loc3_ * _loc3_ + _loc2_ * _loc2_);
  50.    }
  51.    function distanceToCoordinates(x, y, z)
  52.    {
  53.       var _loc4_ = this.x - x;
  54.       var _loc3_ = this.y - y;
  55.       var _loc2_ = this.z - z;
  56.       return Math.sqrt(_loc4_ * _loc4_ + _loc3_ * _loc3_ + _loc2_ * _loc2_);
  57.    }
  58.    function get magnitude()
  59.    {
  60.       return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
  61.    }
  62.    function get length()
  63.    {
  64.       return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
  65.    }
  66.    function set length(newLength)
  67.    {
  68.       var _loc2_ = newLength / Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
  69.       this.x *= _loc2_;
  70.       this.y *= _loc2_;
  71.       this.z *= _loc2_;
  72.    }
  73.    function dot(v)
  74.    {
  75.       return this.x * v.x + this.y * v.y + this.z * v.z;
  76.    }
  77.    function cross(v)
  78.    {
  79.       if(!v)
  80.       {
  81.          v = Vector.VECPZ;
  82.       }
  83.       return new Vector(this.y * v.z - this.z * v.y,this.z * v.x - this.x * v.z,this.x * v.y - this.y * v.x);
  84.    }
  85.    function normalize()
  86.    {
  87.       var _loc2_ = Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
  88.       this.x /= _loc2_;
  89.       this.y /= _loc2_;
  90.       this.z /= _loc2_;
  91.       return this;
  92.    }
  93.    function getNormalized()
  94.    {
  95.       var _loc2_ = Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
  96.       return new Vector(this.x / _loc2_,this.y / _loc2_,this.z / _loc2_);
  97.    }
  98.    function multiply(scalar)
  99.    {
  100.       this.x *= scalar;
  101.       this.y *= scalar;
  102.       this.z *= scalar;
  103.    }
  104.    function divide(scalar)
  105.    {
  106.       if(!scalar)
  107.       {
  108.          this.x = 0;
  109.          this.y = 0;
  110.          this.z = 0;
  111.          return undefined;
  112.       }
  113.       this.x /= scalar;
  114.       this.y /= scalar;
  115.       this.z /= scalar;
  116.    }
  117.    function reverse()
  118.    {
  119.       this.x *= -1;
  120.       this.y *= -1;
  121.       this.z *= -1;
  122.    }
  123.    function getReversed()
  124.    {
  125.       return new Vector(- this.x,- this.y,- this.z);
  126.    }
  127.    function toString()
  128.    {
  129.       return "Vector(" + this.x + "," + this.y + "," + this.z + ")";
  130.    }
  131. }
  132.